/*
 * Project.java
 *
 * Created on Oct 12, 2007, 8:36:09 PM
 *
 * Copyright (c) October 14, 2007 by Dean Del Ponte
 * http://www.sourceseed.org
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published
 * by  the Free Software Foundation; either version 3 of the License or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Library General Public License for more details.
 *
 * You should have received a copy of the GNU Library General Public License
 * along with this program; see the file COPYING.TXT.  If not, write to
 * the Free Software Foundation Inc., 59 Temple Place - Suite 330,
 * Boston, MA  02111-1307 USA
 */

package org.sourceseed.tools.backup.backThatThingUp;

import java.util.List;

/**
 * Defines the files to be backed up, the destinations to which they should be written,<br \>
 * schedule, mailserver, email addresses, etc.
 *
 * @author Dean Del Ponte
 */
public class Project {

    private String name;
    private String description;
    private List<String> targets;
    private List<DayTimes> schedule;
    private DataRetentionLimit dataRetentionLimit;
    private List<Destination> destinations;
    private List<EmailNotification> emailNotifications;
    private MailServer mailServer;

    /**
     * 
     * @return Name of project
     */
    public String getName() {
        return name;
    }

    /**
     * 
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 
     * @return Description of project
     */
    public String getDescription() {
        return description;
    }

    /**
     * 
     * @param description 
     */
    public void setDescription(String description) {
        this.description = description;
    }

    /**
     * 
     * @return List of files, including path, to be backed up
     */
    public List<String> getTargets() {
        return targets;
    }

    /**
     * 
     * @param targets List of files, including path, to be backed up
     */
    public void setTargets(List<String> targets) {
        this.targets = targets;
    }

    /**
     * 
     * @return List of days and times when backups should occur
     */
    public List<DayTimes> getSchedule() {
        return schedule;
    }

    /**
     * 
     * @param schedule List of days and times when backups should occur
     */
    public void setSchedule(List<DayTimes> schedule) {
        this.schedule = schedule;
    }

    /**
     * 
     * @return List of locations to which backups file should be copied
     */
    public List<Destination> getDestinations() {
        return destinations;
    }

    /**
     * 
     * @param destinations List of locations to which backups file should be copied
     */
    public void setDestinations(List<Destination> destinations) {
        this.destinations = destinations;
    }

    /**
     * 
     * @return collection of EmailNotification objects which contain information about email content<br\>
     * recipient addresses, mail servers, etc.
     */
    public List<EmailNotification> getEmailNotifications() {
        return emailNotifications;
    }

    /**
     * 
     * @param emailNotifications
     */
    public void setEmailNotification(List<EmailNotification> emailNotifications) {
        this.emailNotifications = emailNotifications;
    }

    /**
     * 
     * @return File and date retention settings
     */
    public DataRetentionLimit getDataRetentionLimit() {
        return dataRetentionLimit;
    }

    /**
     * 
     * @param dataRetentionLimit
     */
    public void setDataRetentionLimit(DataRetentionLimit dataRetentionLimit) {
        this.dataRetentionLimit = dataRetentionLimit;
    }

    /**
     * 
     * @return Mailserver information
     */
    public MailServer getMailServer() {
        return mailServer;
    }

    /**
     * 
     * @param mailServer
     */
    public void setMailServer(MailServer mailServer) {
        this.mailServer = mailServer;
    }
}